1. Field of the Invention
The present invention relates to an engine control system for calculating an engine control amount, such as an amount of fuel to be supplied to the engine.
2. Description of the Related Background Art
Control of an internal combustion engine, such as fuel injection control for controlling the amount of fuel to be supplied to the engine by injection via a fuel injector, and secondary air control for controlling the amount of secondary air so as to supply secondary air into an intake pipe at a location downstream of a throttle valve via a secondary air passage bypassing the throttle valve, is carried out by a CPU (central processing unit) in accordance with programs therefor. The programs are previously written in a ROM (read only memory) together with engine control data including various kinds of data tables, and the CPU reads out the programs and data store in the ROM to calculate such engine control amounts.
For instance, in the case of fuel injection control, engine control data, such as a data table of a basic fuel injection amount which is determined in accordance with intake pipe inner pressure of the engine and engine rotational speed and a data table of an engine cooling temperature-dependent correction coefficient which is determined in accordance with an engine cooling temperature, is stored in the ROM. During execution of the fuel injection control, engine operating parameters, such as the intake pipe pressure of the engine, the engine rotational speed, the engine cooling temperature, and the concentration of oxygen present in exhaust gases, are detected by various kinds of sensors. A value of the basic fuel injection amount corresponding to the detected values of the intake pipe pressure of the engine and the engine rotational speed is extracted from its data table, and a value of the engine cooling temperature-dependent correction coefficient is extracted from its data table. The basic fuel injection amount is corrected by the engine cooling temperature-dependent correction coefficient, correction coefficients corresponding to the oxygen concentration in exhaust gases and so forth to thereby calculate the fuel injection amount.
If internal combustion engines of the same type are mass-produced, molds for manufacturing the engines are aged, causing delicate changes in engines which are mass-produced from such aged molds. This makes it impossible to suitably control these engines by using engine control amounts based on the engine control data which is stored in the ROM and obtained from the engines initially produced from the molds. In this case, it is normally required to write appropriate engine control data in a new ROM, so that the ROMs provided for mass-produced engines become useless.
To constantly obtain appropriate engine control amounts without using a ROM storing new engine control data, a voltage divider, which consists of two resistances connected in series, is used in a conventional engine control system. That is, the conventional engine control system is configured such that correction voltage generated by the voltage divider is supplied via an A/D converter to the CPU as the digitized correction voltage value. The ROM previously stores data indicative of the relationship between values of the correction voltage and data correction coefficients as a data table, and the CPU obtains a data correction coefficient corresponding to the supplied correction voltage value from the data table and corrects the engine control data by using the data correction coefficient to calculate an engine control amount, such as a fuel injection amount. The resistance values of the voltage divider are set in consideration of a value of the data correction coefficient decided to obtain optimum engine control by testing mass-produced engines.
When the data stored in the ROM is corrected by using the voltage divider, however, a resolution of the correction voltage to be obtained as the digitized value by a ratio between the two resistance values of the voltage divider is low as 25 digital values. Therefore, when a range for the correction is tried to expand, the engine control data is not optimally corrected since data correction coefficient obtained in the CPU becomes a coarse value.